home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / equaflip / axduserd.dob < prev    next >
Text File  |  1999-10-06  |  6KB  |  179 lines

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.UserDocument axdUserDoc 
  4.    ClientHeight    =   225
  5.    ClientLeft      =   0
  6.    ClientTop       =   0
  7.    ClientWidth     =   705
  8.    HScrollSmallChange=   225
  9.    ScaleHeight     =   225
  10.    ScaleWidth      =   705
  11.    VScrollSmallChange=   225
  12.    Begin MSComctlLib.Toolbar Toolbar1 
  13.       Align           =   1  'Align Top
  14.       Height          =   330
  15.       Left            =   0
  16.       TabIndex        =   1
  17.       Top             =   0
  18.       Width           =   705
  19.       _ExtentX        =   1244
  20.       _ExtentY        =   582
  21.       ButtonWidth     =   609
  22.       ButtonHeight    =   582
  23.       ToolTips        =   0   'False
  24.       AllowCustomize  =   0   'False
  25.       Wrappable       =   0   'False
  26.       Style           =   1
  27.       ImageList       =   "ImageList1"
  28.       _Version        =   393216
  29.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  30.          NumButtons      =   2
  31.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  32.             Key             =   "EquaFlipButton"
  33.             Object.ToolTipText     =   "Flip variables around an equal sign"
  34.          EndProperty
  35.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  36.             Key             =   "WiperButton"
  37.             Object.ToolTipText     =   "Clear the Immediate Window"
  38.          EndProperty
  39.       EndProperty
  40.    End
  41.    Begin MSComctlLib.ImageList ImageList1 
  42.       Left            =   90
  43.       Top             =   690
  44.       _ExtentX        =   1005
  45.       _ExtentY        =   1005
  46.       BackColor       =   -2147483643
  47.       ImageWidth      =   16
  48.       ImageHeight     =   16
  49.       MaskColor       =   12632256
  50.       _Version        =   393216
  51.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  52.          NumListImages   =   2
  53.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  54.             Picture         =   "axdUserDoc.dox":0000
  55.             Key             =   "EquaFlipButton"
  56.          EndProperty
  57.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  58.             Picture         =   "axdUserDoc.dox":015C
  59.             Key             =   "WiperButton"
  60.          EndProperty
  61.       EndProperty
  62.    End
  63.    Begin VB.TextBox txtCode 
  64.       Height          =   495
  65.       Left            =   180
  66.       MultiLine       =   -1  'True
  67.       TabIndex        =   0
  68.       Text            =   "axdUserDoc.dox":02BC
  69.       Top             =   1335
  70.       Visible         =   0   'False
  71.       Width           =   15255
  72.    End
  73. End
  74. Attribute VB_Name = "axdUserDoc"
  75. Attribute VB_GlobalNameSpace = False
  76. Attribute VB_Creatable = True
  77. Attribute VB_PredeclaredId = False
  78. Attribute VB_Exposed = True
  79. Option Explicit
  80.  
  81. Public Sub ClearImmediateWindow()
  82. 'Slightly modified from MSDN source sample code
  83. Dim oWindow As VBIDE.Window
  84.     
  85.     Set oWindow = VBInstance.Windows("Immediate")
  86.     If oWindow Is Nothing Then Exit Sub  '
  87.     
  88.     If oWindow.Visible = True Then
  89.         oWindow.SetFocus
  90.         SendKeys ("^({Home})"), True
  91.         SendKeys ("^(+({End}))"), True
  92.         SendKeys ("{Del}"), True
  93.     End If
  94.     
  95.     Set oWindow = Nothing
  96.  
  97. End Sub
  98.  
  99.  
  100. Public Sub FlipText()
  101. Dim nLineCount As Integer
  102. Dim i As Integer
  103. Dim sLine As String
  104. Dim sLeftSide As String
  105. Dim sRightSide As String
  106. Dim sNewCode As String
  107. Dim nPos As Integer
  108.  
  109.     'Get the text from the clipboard and establisg the number of lines
  110.     txtCode = Clipboard.GetText
  111.     nLineCount = SendMessage(txtCode.hwnd, EM_GETLINECOUNT, 0&, 0&)
  112.  
  113.     'loop through each line
  114.     For i = 1 To nLineCount
  115.         'add a CR if there's more than one line
  116.         If i > 1 Then sNewCode = sNewCode + vbCr
  117.         
  118.         'if there's an equal sign in the text line,
  119.         'chop up the string and switch sides
  120.         '(otherwise we do not affect the line)
  121.         sLine = GetTextLine(i)
  122.         nPos = InStr(sLine, "=")
  123.         If nPos > 0 Then
  124.             sLeftSide = Trim$(Left$(sLine, nPos - 1))
  125.             sRightSide = Trim$(Right$(sLine, Len(sLine) - (nPos)))
  126.             sLine = sRightSide + " = " + sLeftSide
  127.         End If
  128.         
  129.         'concatenate the new line
  130.         sNewCode = sNewCode + sLine
  131.         
  132.     Next
  133.     
  134.     'place the modified code on the clipboard
  135.     Clipboard.Clear
  136.     Clipboard.SetText sNewCode, vbCFText
  137.  
  138. End Sub
  139.  
  140. Function GetTextLine(ByVal nLineNumber As Integer) As String
  141. Const vbBufferSize = 1024  'max line length is set to 1024 bytes
  142. Dim sLine As String * vbBufferSize
  143. Dim nReturn As Long
  144.  
  145.     ' Assign buffer size to first word of sLine
  146.     Mid$(sLine, 1, 1) = Chr$(vbBufferSize And &HFF)
  147.     Mid$(sLine, 2, 1) = Chr$(vbBufferSize \ &H100)
  148.  
  149.     'Get the line of text
  150.     nReturn = SendMessage(txtCode.hwnd, EM_GETLINE, nLineNumber - 1, ByVal sLine)
  151.  
  152.     If nReturn Then
  153.         GetTextLine = Left$(sLine, nReturn)
  154.     Else
  155.         GetTextLine = ""
  156.     End If
  157.  
  158. End Function
  159.  
  160.  
  161. Private Sub UserDocument_Initialize()
  162.     Toolbar1.Buttons(1).Image = 1
  163.     Toolbar1.Buttons(1).Key = "EquaFlipButton"
  164.     
  165.     Toolbar1.Buttons(2).Image = 2
  166.     Toolbar1.Buttons(2).Key = "WiperButton"
  167.     
  168. End Sub
  169.  
  170. Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
  171.     Select Case Button.Key
  172.         Case "EquaFlipButton"
  173.             FlipText
  174.         Case "WiperButton"
  175.             ClearImmediateWindow
  176.     End Select
  177. End Sub
  178.  
  179.